package com.bestcem.xm.deliver.mq.send.biz;


import com.bestcem.xm.deliver.mq.dto.*;

import java.util.Date;
import java.util.Map;

public interface DeliverMessageSendService {

    /**
     * 微信公众号投放延迟发送
     *
     * @param dto 消息体
     * @author chenglong.yue <chenglong.yue@idiaoyan.com>
     * @date 2022/12/16 17:13
     */
    void wechatmpDeliverSend(WechatmpDeliverMessageDto dto, Date delayDate);

    /**
     * 微信公众号投放立即发送
     *
     * @param dto 消息体
     * @author chenglong.yue <chenglong.yue@idiaoyan.com>
     * @date 2022/12/16 17:13
     */
    void wechatmpDeliverSend(WechatmpDeliverMessageDto dto);

    /**
     * 邮件投放延迟发送
     *
     * @param dto 消息体
     * @author xiaoshu.shao <xiaoshu.shao@idiaoyan.com>
     * @date 2022/12/19 17:58
     */
    void emailDeliverSend(EmailDeliverMessageDto dto, Date delayDate);

    /**
     * 邮件投放立即发送
     *
     * @param dto 消息体
     * @author xiaoshu.shao <xiaoshu.shao@idiaoyan.com>
     * @date 2022/12/19 17:58
     */
    void emailDeliverSend(EmailDeliverMessageDto dto);

    /**
     * 邮件投放延迟立即发送
     *
     * @param dto 消息体
     * @author xiaoshu.shao <xiaoshu.shao@idiaoyan.com>
     * @date 2023/1/9 15:41
     */
    void smsDeliverSend(SmsDeliverMessageDto dto, Date delayDate);

    /**
     * 邮件投放立即发送
     *
     * @param dto 消息体
     * @author xiaoshu.shao <xiaoshu.shao@idiaoyan.com>
     * @date 2023/1/9 15:41
     */
    void smsDeliverSend(SmsDeliverMessageDto dto);

    void saveCustomDeliverLinkSend(CustomDeliverLinkMessageDto dto);

    void projectUpdated(StatusDto dto);

    void surveyCreateColumns(CreateColumnsDto dto);

    void openplatformExtParamChangedSend(Map<String, Object> data);
}
